package de.hwr.sudokuspielehr.generator;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import org.junit.Test;

import de.hwr.sudokuspielehr.data.Sudoku;

/**
 * 
 * @author J. Reischauer
 * 
 */
public class TestSudokuGenerator {
	@Test
	public void testGenerateVeryEasySudoku() {
		Sudoku s = SudokuGenerator.generateVeryEasySudoku();
		s.print();
		s.scan();
		assertTrue(s.isFilled());
	}

	@Test
	public void testGenerateEasySudoku() {
		Sudoku s = SudokuGenerator.generateEasySudoku();
		s.print();
		s.scan();
		assertTrue(s.isFilled());
	}

	@Test
	public void testGenerate() {
		Sudoku s = SudokuGenerator.generateSudoku(9, 30);
		assertFalse(s.containsErrors());
		s.solve();
		assertFalse(s.containsErrors());
	}

	@Test
	public void testGeneratorBug() {
		int amount = 100;
		for (int i = 0; i < amount; i++) {
			SudokuGenerator.generateSudoku(9, 30);
		}
	}
}
